AgAsk: A Conversational Search Agent for Answering Agricultural Questions
Authors:
 
                        
                     
                        
                     
                        
                     
                        
                    Installation
Macaw is running with Python 3.8, so make sure you have it installed. If you don’t have setuptools, run sudo pip3 install setuptools. The mentioned installation commands can be executed on Ubuntu. You can use the same or similar commands on other Linux distribution.
Step 1: Installing MongoDB Server
Macaw uses MongoDB for storing and retrieving user interactions (conversations). To install MongoDB server, run the following command:
sudo apt-get install mongodb-server-core
Step 2: Installing Pyserini
Pyserini is an open-source search engine for information retrieval research, we replaced the original Indri retrieval engine with Pyserini for easier development.
To install Pyserini:
pip3 install pyserini==0.14.0
Install pytorch and transformers:
pip3 install torch==1.6.0+cpu torchvision==0.7.0+cpu transformers==4.21.1
Step 3: Installing Macaw
First, clone the Macaw fork from our github repo:
git clone https://github.com/ielab/macaw.git
cd macaw
sudo pip3 install -r requirements.txt
sudo python3 setup.py install
Step 4: Create Telegram bot
We refer the readers to How to Create a Telegram Bot page for detailed instructions.
Step 5: Change the Configurations
We need to make some changes to the configs to run our version of Macaw:
cd macaw/macaw/
sudo vim live_main.py
In this file, you need to modify the bot_token in the interface_params, which you need to get by creating a bot in Telegram (Step 4). In retrieval_params you need to change the pyserini_index parameter to point to the location that stores your pyserini index file. and same for tilde-v2_index.
The results_requested and retrieval_requested, you can change them depend on your needs.
Running Macaw
We run our version of Macaw as in live version, first of all, we need to start the MongoDB server:
sudo mongod
Note that this command uses the default database directory (/data/db) for storing the data. You may need to create 
this directory if you haven’t. You can also use other locations using the --dbpath argument.
python3 live_main.py
Run the above command to start the Macaw server.
To use the retrieval mode, issue your question with Search:  as a prepend, if want to use QA mode, issue your question with QA:  as a prepend. If no prepend found, Macaw will run in QA mode in default.
In retrieval mode, Macaw will reply with a list of retrieved passages, in QA mode, Macaw will generate a specific answer to the question asked.